import { Component } from '@angular/core';
import { NavController,ItemSliding, ModalController } from 'ionic-angular';
import { Task } from './task';
import { HttpDataProvider } from '../../providers/http-data/http-data';
import { InputTaskPage } from '../input-task/input-task';

@Component({
  selector: 'page-tasklist',
  templateUrl: 'tasklist.html'
})
export class TaskListPage {
  tasks:Task[] = [];
  constructor(
    public navCtrl: NavController,
    public modalCtrl: ModalController,
    public httpData: HttpDataProvider
    ) {

  }
  ionViewDidLoad(){
    //this.tasks=[
    // {title: '牛奶', status: 'open'},
    // {title: '鸡蛋', status: 'open'},
    //  {title: '果汁', stat=us: 'open'},
    //  {title: '煎饼', status: 'open'}
    // ];
    //云端获取数据
    this.httpData.getTaskList().subscribe(tasks=>this.tasks=tasks);

  }
  
  addTask(){
    /**
     * 点击+
     * 利用浏览器弹窗，新建简易待办事项
     */
    // let theNewTask: string = prompt("新任务");
    // if(theNewTask !==''){
    //   this.tasks.push({title:theNewTask,status:'open'});
    // }
    let addModal=this.modalCtrl.create(InputTaskPage);

    addModal.onDidDismiss((task:Task)=>{
      if(task){
        this.tasks.push(task);
      }
    });

    addModal.present();
  }
  editTask(task : Task){
    if(task.status==='done')
      return;
    const index : number=this.tasks.indexOf(task);
    let editModal = this.modalCtrl.create(InputTaskPage,{task:task});

    editModal.onDidDismiss((task)=>{
      if(task){
        this.tasks[index]=task;
      }
    });

    editModal.present();
  }
  /**
   * 
   * @param task 选择标记的时候更改状态为done，表示已经做完。
   * 点击√,发生变化要在scss中定义样式
   */
  markAsDone(slidingItem:ItemSliding,task:Task){
    task.status='done';
    this.httpData.updateTask(task).subscribe();//更新订阅
    slidingItem.close();//点完就关闭
  } /**
   * 
   * @param task 选择删除时，删除当前项。
   */
  removeTask(slidingItem:ItemSliding,task:Task){
    task.status='removed';
    //利用索引找到任务
    let index = this.tasks.indexOf(task);
    //如果找到任务索引，从当前位置删，删除1个。
    if(index>-1){
      this.tasks.splice(index,1);
    }
    this.httpData.deleteTask(task).subscribe();//删除
    slidingItem.close();
  }/**
   * 下拉刷新
   * @param refresher 
   */
  doRefresh(refresher:any){
    setTimeout(()=>{
      this.httpData.getTaskList().subscribe(tasks=>this.tasks=tasks);
      refresher.complete();
    },2000);
  }
}
